mem_access: added INT3/CRx capture
authorJoe Epstein <jepstein98@gmail.com>
Fri, 7 Jan 2011 11:54:48 +0000 (11:54 +0000)
committerJoe Epstein <jepstein98@gmail.com>
Fri, 7 Jan 2011 11:54:48 +0000 (11:54 +0000)
commitdf402bb9f0dcf49f03098ac3bca64b01dd4decce
tree396a4308d1c4664834a505a296e22376177eff10
parent81f8af44baecf94a72d08cde1619f5af63c1b3a7
mem_access: added INT3/CRx capture

* Allows a memory event listener to register for events on changes to
  CR0, CR3, and CR4, as well as INT3 instructions, as a part of the
  mem_access mechanism.  These events can be either synchronous or
  asynchronous.

* For INT3, the logic works independent of a debugger, and so both can
  be supported.

* The presence and type of listener are stored and accessed through
  HVM params.

* Changed the event mask handling to ensure that the right events are
  captured based on the listeners.

* Added the ability to inject HW/SW traps into a VCPU when it next
  resumes (rather than try to modify the existing IRQ injection
  code paths).  Only one trap to inject can be outstanding at a time.

Signed-off-by: Joe Epstein <jepstein98@gmail.com>
Acked-by: Keir Fraser <keir@xen.org>
Acked-by: Tim Deegan <Tim.Deegan@citrix.com>
xen/arch/x86/hvm/hvm.c
xen/arch/x86/hvm/vmx/vmcs.c
xen/arch/x86/hvm/vmx/vmx.c
xen/include/asm-x86/hvm/hvm.h
xen/include/asm-x86/hvm/vcpu.h
xen/include/public/hvm/hvm_op.h
xen/include/public/hvm/params.h
xen/include/public/mem_event.h